[INFO] fetching crate ketos 0.12.0...
[INFO] checking ketos-0.12.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate ketos 0.12.0 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate ketos 0.12.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate ketos 0.12.0
[INFO] finished tweaking crates.io crate ketos 0.12.0
[INFO] tweaked toml for crates.io crate ketos 0.12.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate crates.io crate ketos 0.12.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded constant_time_eq v0.1.4
[INFO] [stderr]   Downloaded rust-argon2 v0.5.1
[INFO] [stderr]   Downloaded ketos_derive v0.12.0
[INFO] [stderr]   Downloaded num-rational v0.2.2
[INFO] [stderr]   Downloaded assert_matches v1.3.0
[INFO] [stderr]   Downloaded arrayref v0.3.5
[INFO] [stderr]   Downloaded num-complex v0.2.3
[INFO] [stderr]   Downloaded terminfo v0.6.1
[INFO] [stderr]   Downloaded smallstr v0.1.0
[INFO] [stderr]   Downloaded num v0.2.0
[INFO] [stderr]   Downloaded linefeed v0.6.0
[INFO] [stderr]   Downloaded mortal v0.2.1
[INFO] [stderr]   Downloaded redox_users v0.3.1
[INFO] [stderr]   Downloaded blake2b_simd v0.5.9
[INFO] [stderr]   Downloaded gumdrop_derive v0.7.0
[INFO] [stderr]   Downloaded num-iter v0.1.39
[INFO] [stderr]   Downloaded num-bigint v0.2.3
[INFO] [stderr]   Downloaded gumdrop v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1dcccbf4a3326c8c4369b9cbfd456514acc9999fe7ba83121bf1043eb6ced387
[INFO] running `Command { std: "docker" "start" "-a" "1dcccbf4a3326c8c4369b9cbfd456514acc9999fe7ba83121bf1043eb6ced387", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1dcccbf4a3326c8c4369b9cbfd456514acc9999fe7ba83121bf1043eb6ced387", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1dcccbf4a3326c8c4369b9cbfd456514acc9999fe7ba83121bf1043eb6ced387", kill_on_drop: false }`
[INFO] [stdout] 1dcccbf4a3326c8c4369b9cbfd456514acc9999fe7ba83121bf1043eb6ced387
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04e90238808bb0e1d6830156b0b8818083e1e67405f97e6d101788edf9026a00
[INFO] running `Command { std: "docker" "start" "-a" "04e90238808bb0e1d6830156b0b8818083e1e67405f97e6d101788edf9026a00", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling libc v0.2.66
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stderr]    Compiling siphasher v0.2.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.6
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.11
[INFO] [stderr]    Compiling getrandom v0.1.13
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.6
[INFO] [stderr]     Checking smallvec v1.1.0
[INFO] [stderr]     Checking smallvec v0.6.13
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]     Checking unicode-width v0.1.7
[INFO] [stderr]     Checking assert_matches v1.3.0
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling phf_shared v0.7.24
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]     Checking unicode-normalization v0.1.11
[INFO] [stderr]     Checking smallstr v0.1.0
[INFO] [stderr]     Checking phf v0.7.24
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-bigint v0.2.3
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]     Checking c2-chacha v0.2.3
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]     Checking nix v0.14.1
[INFO] [stderr]     Checking dirs v1.0.5
[INFO] [stderr]     Checking dirs-sys v0.3.4
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]     Checking rand v0.7.2
[INFO] [stderr]    Compiling phf_generator v0.7.24
[INFO] [stderr]    Compiling phf_codegen v0.7.24
[INFO] [stderr]    Compiling terminfo v0.6.1
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]    Compiling gumdrop_derive v0.7.0
[INFO] [stderr]    Compiling ketos_derive v0.12.0
[INFO] [stderr]     Checking gumdrop v0.7.0
[INFO] [stderr]     Checking mortal v0.2.1
[INFO] [stderr]     Checking linefeed v0.6.0
[INFO] [stderr]     Checking ketos v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let b = SomeTrait::downcast::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let b = <dyn SomeTrait>::downcast::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let c = SomeTrait::downcast::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let c = <dyn SomeTrait>::downcast::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let b = SomeTrait::downcast_rc::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let b = <dyn SomeTrait>::downcast_rc::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let c = SomeTrait::downcast_rc::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let c = <dyn SomeTrait>::downcast_rc::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/structs.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 ForeignValue::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 <dyn ForeignValue>::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ++++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/structs.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 ForeignValue::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 <dyn ForeignValue>::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ++++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/ketos/compile.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let _ = replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/ketos/compile.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let _ = replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> tests/test_derive.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct NoClone(&'static str);
[INFO] [stdout]   |        ------- ^^^^^^^^^^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NoClone` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct NoClone(());
[INFO] [stdout]   |                ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> tests/test_derive.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Cloner(&'static str);
[INFO] [stdout]    |        ------ ^^^^^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Cloner` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Cloner(());
[INFO] [stdout]    |               ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.09s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v4.2.3, terminfo v0.6.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "04e90238808bb0e1d6830156b0b8818083e1e67405f97e6d101788edf9026a00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04e90238808bb0e1d6830156b0b8818083e1e67405f97e6d101788edf9026a00", kill_on_drop: false }`
[INFO] [stdout] 04e90238808bb0e1d6830156b0b8818083e1e67405f97e6d101788edf9026a00
[INFO] checking ketos-0.12.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate ketos 0.12.0 into /workspace/builds/worker-3-tc2/source
[INFO] validating manifest of crates.io crate ketos 0.12.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate ketos 0.12.0
[INFO] finished tweaking crates.io crate ketos 0.12.0
[INFO] tweaked toml for crates.io crate ketos 0.12.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate crates.io crate ketos 0.12.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7e64645d377108fe84bb9ecf8734ca0aa787fb592205536a85334e747ab8cb19
[INFO] running `Command { std: "docker" "start" "-a" "7e64645d377108fe84bb9ecf8734ca0aa787fb592205536a85334e747ab8cb19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e64645d377108fe84bb9ecf8734ca0aa787fb592205536a85334e747ab8cb19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e64645d377108fe84bb9ecf8734ca0aa787fb592205536a85334e747ab8cb19", kill_on_drop: false }`
[INFO] [stdout] 7e64645d377108fe84bb9ecf8734ca0aa787fb592205536a85334e747ab8cb19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b36726d7209ca42687cd8ef836fc928916494f95767646fb0cedc6bb2adf34ac
[INFO] running `Command { std: "docker" "start" "-a" "b36726d7209ca42687cd8ef836fc928916494f95767646fb0cedc6bb2adf34ac", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling libc v0.2.66
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stderr]    Compiling siphasher v0.2.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.6
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.11
[INFO] [stderr]    Compiling getrandom v0.1.13
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking smallvec v1.1.0
[INFO] [stderr]     Checking smallvec v0.6.13
[INFO] [stderr]     Checking ppv-lite86 v0.2.6
[INFO] [stderr]     Checking unicode-width v0.1.7
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]     Checking assert_matches v1.3.0
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling phf_shared v0.7.24
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]     Checking smallstr v0.1.0
[INFO] [stderr]     Checking phf v0.7.24
[INFO] [stderr]     Checking unicode-normalization v0.1.11
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-bigint v0.2.3
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking c2-chacha v0.2.3
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]     Checking nix v0.14.1
[INFO] [stderr]     Checking dirs v1.0.5
[INFO] [stderr]     Checking dirs-sys v0.3.4
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]     Checking rand v0.7.2
[INFO] [stderr]    Compiling phf_generator v0.7.24
[INFO] [stderr]    Compiling phf_codegen v0.7.24
[INFO] [stderr]    Compiling terminfo v0.6.1
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]    Compiling gumdrop_derive v0.7.0
[INFO] [stderr]    Compiling ketos_derive v0.12.0
[INFO] [stderr]     Checking gumdrop v0.7.0
[INFO] [stderr]     Checking mortal v0.2.1
[INFO] [stderr]     Checking linefeed v0.6.0
[INFO] [stderr]     Checking ketos v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:393:28
[INFO] [stdout]     |
[INFO] [stdout] 393 |         self.stack.extend((0..total_params as u32).map(|n| (Name::dummy(), n)));
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:501:69
[INFO] [stdout]     |
[INFO] [stdout] 501 | ...                   let v = self.expand_macro(name, &li[1..], &value)?;
[INFO] [stdout]     |                                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:509:72
[INFO] [stdout]     |
[INFO] [stdout] 509 | ...                   return self.compile_operator(name, &li[1..], &value);
[INFO] [stdout]     |                                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:510:70
[INFO] [stdout]     |
[INFO] [stdout] 510 | ...                   } else if self.specialize_call(name, &li[1..])? {
[INFO] [stdout]     |                                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |                 for v in &li[1..] {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:646:55
[INFO] [stdout]     |
[INFO] [stdout] 646 |                 self.eval_constant_function(name, &li[1..])
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:1380:34
[INFO] [stdout]      |
[INFO] [stdout] 1380 |         let _ = self.stack.drain(n..);
[INFO] [stdout]      |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:1883:43
[INFO] [stdout]      |
[INFO] [stdout] 1883 |                 compiler, Some(name), &li[1..], body, doc)?;
[INFO] [stdout]      |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:1910:24
[INFO] [stdout]      |
[INFO] [stdout] 1910 |             (name, &li[1..])
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:2105:23
[INFO] [stdout]      |
[INFO] [stdout] 2105 |     for case in &args[1..] {
[INFO] [stdout]      |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:155:18
[INFO] [stdout]     |
[INFO] [stdout] 155 |         for _ in 0..n_names {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 |     for _ in 0..n_exports {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     for _ in 0..n_imports {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:178:18
[INFO] [stdout]     |
[INFO] [stdout] 178 |         for _ in 0..n_names {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |     for _ in 0..n_consts {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:200:14
[INFO] [stdout]     |
[INFO] [stdout] 200 |     for _ in 0..n_macros {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:209:14
[INFO] [stdout]     |
[INFO] [stdout] 209 |     for _ in 0..n_values {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:226:14
[INFO] [stdout]     |
[INFO] [stdout] 226 |     for _ in 0..n_docs {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:441:26
[INFO] [stdout]     |
[INFO] [stdout] 441 |                 for _ in 0..n {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:481:26
[INFO] [stdout]     |
[INFO] [stdout] 481 |                 for _ in 0..n {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:523:18
[INFO] [stdout]     |
[INFO] [stdout] 523 |         for _ in 0..n_consts {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:552:26
[INFO] [stdout]     |
[INFO] [stdout] 552 |                 for _ in 0..n {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:942:21
[INFO] [stdout]     |
[INFO] [stdout] 942 |         Some(&bytes[pos..pos + n])
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/exec.rs:992:28
[INFO] [stdout]     |
[INFO] [stdout] 992 |         let n = self.stack[start..end].iter()
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/exec.rs:996:34
[INFO] [stdout]     |
[INFO] [stdout] 996 |         let _ = self.stack.drain(start..end);
[INFO] [stdout]     |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1007:28
[INFO] [stdout]      |
[INFO] [stdout] 1007 |         let n = self.stack[pos..].iter()
[INFO] [stdout]      |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1011:34
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         let _ = self.stack.drain(pos..);
[INFO] [stdout]      |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1198:18
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         for _ in 0..n {
[INFO] [stdout]      |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1220:32
[INFO] [stdout]      |
[INFO] [stdout] 1220 |             let n = self.stack[start..].iter()
[INFO] [stdout]      |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1224:33
[INFO] [stdout]      |
[INFO] [stdout] 1224 |             Ok(self.stack.drain(start..))
[INFO] [stdout]      |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:515:22
[INFO] [stdout]     |
[INFO] [stdout] 515 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:559:26
[INFO] [stdout]     |
[INFO] [stdout] 559 |         for arg in &args[1..] {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:617:22
[INFO] [stdout]     |
[INFO] [stdout] 617 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:783:26
[INFO] [stdout]     |
[INFO] [stdout] 783 |         for arg in &args[1..] {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:802:26
[INFO] [stdout]     |
[INFO] [stdout] 802 |         for arg in &args[1..] {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:956:22
[INFO] [stdout]     |
[INFO] [stdout] 956 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:979:22
[INFO] [stdout]     |
[INFO] [stdout] 979 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1002:22
[INFO] [stdout]      |
[INFO] [stdout] 1002 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1033:22
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1053:26
[INFO] [stdout]      |
[INFO] [stdout] 1053 |         for rhs in &args[i + 1..] {
[INFO] [stdout]      |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1094:22
[INFO] [stdout]      |
[INFO] [stdout] 1094 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1115:22
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1137:22
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1159:22
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1312:25
[INFO] [stdout]      |
[INFO] [stdout] 1312 |     let mut iter = args[1..].iter_mut();
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1341:25
[INFO] [stdout]      |
[INFO] [stdout] 1341 |     let mut iter = args[1..].iter_mut();
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1365:67
[INFO] [stdout]      |
[INFO] [stdout] 1365 |     let s = format_string(&ctx.scope().borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1374:61
[INFO] [stdout]      |
[INFO] [stdout] 1374 |     let s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1387:65
[INFO] [stdout]      |
[INFO] [stdout] 1387 |     let mut s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1403:61
[INFO] [stdout]      |
[INFO] [stdout] 1403 |     let s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1416:65
[INFO] [stdout]      |
[INFO] [stdout] 1416 |     let mut s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1439:19
[INFO] [stdout]      |
[INFO] [stdout] 1439 |     v.extend(args[1..].iter_mut().map(|v| v.take()));
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1607:26
[INFO] [stdout]      |
[INFO] [stdout] 1607 |         for arg in &args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1629:26
[INFO] [stdout]      |
[INFO] [stdout] 1629 |         for arg in &args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1670:33
[INFO] [stdout]      |
[INFO] [stdout] 1670 |                     Ok(li.slice(begin..).into())
[INFO] [stdout]      |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1680:32
[INFO] [stdout]      |
[INFO] [stdout] 1680 |                     Ok(s.slice(begin..).into())
[INFO] [stdout]      |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1688:32
[INFO] [stdout]      |
[INFO] [stdout] 1688 |                     Ok(b.slice(begin..).into())
[INFO] [stdout]      |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1717:33
[INFO] [stdout]      |
[INFO] [stdout] 1717 |                     Ok(li.slice(begin..end).into())
[INFO] [stdout]      |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1731:32
[INFO] [stdout]      |
[INFO] [stdout] 1731 |                     Ok(s.slice(begin..end).into())
[INFO] [stdout]      |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1741:32
[INFO] [stdout]      |
[INFO] [stdout] 1741 |                     Ok(b.slice(begin..end).into())
[INFO] [stdout]      |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1850:25
[INFO] [stdout]      |
[INFO] [stdout] 1850 |             Ok(li.slice(1..).into())
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1856:40
[INFO] [stdout]      |
[INFO] [stdout] 1856 |                 Some(ch) => Ok(s.slice(ch.len_utf8()..).into()),
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1864:28
[INFO] [stdout]      |
[INFO] [stdout] 1864 |                 Ok(b.slice(1..).into())
[INFO] [stdout]      |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:2135:26
[INFO] [stdout]      |
[INFO] [stdout] 2135 |     for arg in &mut args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:2148:26
[INFO] [stdout]      |
[INFO] [stdout] 2148 |     for arg in &mut args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:107:31
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let line_end = match text[line_start..].find('\n') {
[INFO] [stdout]     |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:112:26
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let pre_chars = text[line_start..span.lo as usize].chars().count();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:113:26
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let span_str = &text[span.lo as usize..span.hi as usize];
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |         source: &text[line_start..line_end],
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:200:41
[INFO] [stdout]     |
[INFO] [stdout] 200 |             ..highlight_span(&self.text[f.begin as usize..end as usize], adj_span)
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:265:63
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 '-' | '0' ..= '9' => parse_number(&self.input[ind..]),
[INFO] [stdout]     |                                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:266:52
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 '"' => Ok(parse_string(&self.input[ind..], self.code_offset + lo)?),
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:270:78
[INFO] [stdout]     |
[INFO] [stdout] 270 | ...                   Some((_, 'r')) => Ok(parse_raw_bytes(&self.input[ind..],
[INFO] [stdout]     |                                                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:272:74
[INFO] [stdout]     |
[INFO] [stdout] 272 | ...                   Some((_, '"')) => Ok(parse_bytes(&self.input[ind..],
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:274:74
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   Some((_, '\'')) => Ok(parse_byte(&self.input[ind..],
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:281:77
[INFO] [stdout]     |
[INFO] [stdout] 281 | ...                   Some((_, 'r')) => Ok(parse_raw_path(&self.input[ind..],
[INFO] [stdout]     |                                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:283:73
[INFO] [stdout]     |
[INFO] [stdout] 283 | ...                   Some((_, '"')) => Ok(parse_path(&self.input[ind..],
[INFO] [stdout]     |                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:288:66
[INFO] [stdout]     |
[INFO] [stdout] 288 |                     Some((_, '\'')) => Ok(parse_char(&self.input[ind..],
[INFO] [stdout]     |                                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:302:57
[INFO] [stdout]     |
[INFO] [stdout] 302 |                         Ok(parse_raw_string(&self.input[ind..],
[INFO] [stdout]     |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:304:49
[INFO] [stdout]     |
[INFO] [stdout] 304 |                     _ => parse_name(&self.input[ind..])
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:306:50
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 ':' => parse_keyword(&self.input[ind..]),
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:309:76
[INFO] [stdout]     |
[INFO] [stdout] 309 |                         Some((_, ';')) => Ok(parse_doc_comment(&self.input[ind..])),
[INFO] [stdout]     |                                                                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:327:66
[INFO] [stdout]     |
[INFO] [stdout] 327 |                 _ if is_identifier(ch) => parse_name(&self.input[ind..]),
[INFO] [stdout]     |                                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:338:38
[INFO] [stdout]     |
[INFO] [stdout] 338 |             self.input = &self.input[ind + size..];
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:366:38
[INFO] [stdout]     |
[INFO] [stdout] 366 |             self.input = &self.input[pos..];
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:492:29
[INFO] [stdout]     |
[INFO] [stdout] 492 |     parse_identifier(&input[1..]) // Skip leading ':'
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:516:24
[INFO] [stdout]     |
[INFO] [stdout] 516 |         (16, 2, &input[2..])
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:518:23
[INFO] [stdout]     |
[INFO] [stdout] 518 |         (8, 2, &input[2..])
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:520:23
[INFO] [stdout]     |
[INFO] [stdout] 520 |         (2, 2, &input[2..])
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:522:21
[INFO] [stdout]     |
[INFO] [stdout] 522 |         match input[1..].chars().next() {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:523:59
[INFO] [stdout]     |
[INFO] [stdout] 523 |             Some(ch) if ch.is_digit(10) => (10, 1, &input[1..]),
[INFO] [stdout]     |                                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:597:54
[INFO] [stdout]     |
[INFO] [stdout] 597 |     let (_, size) = string::parse_byte_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:602:58
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let (_, size) = string::parse_raw_byte_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:607:49
[INFO] [stdout]     |
[INFO] [stdout] 607 |     let (_, size) = string::parse_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:612:53
[INFO] [stdout]     |
[INFO] [stdout] 612 |     let (_, size) = string::parse_raw_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:483:42
[INFO] [stdout]     |
[INFO] [stdout] 483 |         string::parse_raw_byte_string(&s[2..], 0)?
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:485:38
[INFO] [stdout]     |
[INFO] [stdout] 485 |         string::parse_byte_string(&s[2..], 0)?
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:492:37
[INFO] [stdout]     |
[INFO] [stdout] 492 |         string::parse_raw_string(&s[2..], 0)?
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:494:33
[INFO] [stdout]     |
[INFO] [stdout] 494 |         string::parse_string(&s[2..], 0)?
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:517:17
[INFO] [stdout]     |
[INFO] [stdout] 517 |         _ => &s[2..]
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:546:16
[INFO] [stdout]     |
[INFO] [stdout] 546 |         s = &s[1..].trim_start_matches('0');
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ketos/pretty.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |             if is_short_args(&li[1..]) {
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ketos/pretty.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for _ in 0..n {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ketos/rc_vec.rs:98:33
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let _ = s.drain(self.end..);
[INFO] [stdout]    |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 |             Err(data) => data[self.start..self.end].to_owned()
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let _ = s.drain(self.end..);
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:134:20
[INFO] [stdout]     |
[INFO] [stdout] 134 |         &self.data[self.start..self.end]
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:287:33
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 let _ = v.drain(self.end..);
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:291:31
[INFO] [stdout]     |
[INFO] [stdout] 291 |             Err(data) => data[self.start..self.end].to_vec()
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:305:25
[INFO] [stdout]     |
[INFO] [stdout] 305 |         let _ = v.drain(self.end..);
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:324:20
[INFO] [stdout]     |
[INFO] [stdout] 324 |         &self.data[self.start..self.end]
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 |         for _ in 0..n_hash {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:206:39
[INFO] [stdout]     |
[INFO] [stdout] 206 |             Some((ind, _)) => &self.s[ind..],
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:239:24
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 self.s[start..end].parse()
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:441:32
[INFO] [stdout]     |
[INFO] [stdout] 441 |         let fields = &self.fmt[field_start..field_end];
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:818:17
[INFO] [stdout]     |
[INFO] [stdout] 818 |         if !buf[start..].is_empty() {
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:853:30
[INFO] [stdout]     |
[INFO] [stdout] 853 |                     for _ in 0..n {
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:966:37
[INFO] [stdout]     |
[INFO] [stdout] 966 |             let segment = &self.fmt[seg_start..end_dir.span.lo as usize];
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1190:39
[INFO] [stdout]      |
[INFO] [stdout] 1190 |         let sub_fmt = match &self.fmt[start..end_dir.span.lo as usize] {
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1213:63
[INFO] [stdout]      |
[INFO] [stdout] 1213 |                     let mut sub_fmter = self.sub(sub_fmt, &li[last_off..]);
[INFO] [stdout]      |                                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1320:50
[INFO] [stdout]      |
[INFO] [stdout] 1320 |                     for (i, item) in self.values[start_off..].iter().enumerate() {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1581:7
[INFO] [stdout]      |
[INFO] [stdout] 1581 |     s[pos..].chars().count()
[INFO] [stdout]      |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1614:10
[INFO] [stdout]      |
[INFO] [stdout] 1614 |     if s[start..].is_ascii() {
[INFO] [stdout]      |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1615:11
[INFO] [stdout]      |
[INFO] [stdout] 1615 |         s[start..].make_ascii_lowercase();
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1617:23
[INFO] [stdout]      |
[INFO] [stdout] 1617 |         let lower = s[start..].to_lowercase();
[INFO] [stdout]      |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1624:10
[INFO] [stdout]      |
[INFO] [stdout] 1624 |     if s[start..].is_ascii() {
[INFO] [stdout]      |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1625:11
[INFO] [stdout]      |
[INFO] [stdout] 1625 |         s[start..].make_ascii_uppercase();
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1627:23
[INFO] [stdout]      |
[INFO] [stdout] 1627 |         let upper = s[start..].to_uppercase();
[INFO] [stdout]      |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1635:34
[INFO] [stdout]      |
[INFO] [stdout] 1635 |         let (off, len) = match s[start..].split_whitespace().next() {
[INFO] [stdout]      |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1650:29
[INFO] [stdout]      |
[INFO] [stdout] 1650 |     let (ind, ch) = match s[start..].char_indices()
[INFO] [stdout]      |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1657:11
[INFO] [stdout]      |
[INFO] [stdout] 1657 |         s[ind..=ind].make_ascii_uppercase();
[INFO] [stdout]      |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:634:26
[INFO] [stdout]     |
[INFO] [stdout] 634 |                 for _ in 0..depth { write!(f, "`")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:638:26
[INFO] [stdout]     |
[INFO] [stdout] 638 |                 for _ in 0..depth { write!(f, ",")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:642:26
[INFO] [stdout]     |
[INFO] [stdout] 642 |                 for _ in 0..depth { write!(f, ",")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:647:26
[INFO] [stdout]     |
[INFO] [stdout] 647 |                 for _ in 0..depth { write!(f, "'")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:393:28
[INFO] [stdout]     |
[INFO] [stdout] 393 |         self.stack.extend((0..total_params as u32).map(|n| (Name::dummy(), n)));
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:501:69
[INFO] [stdout]     |
[INFO] [stdout] 501 | ...                   let v = self.expand_macro(name, &li[1..], &value)?;
[INFO] [stdout]     |                                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:509:72
[INFO] [stdout]     |
[INFO] [stdout] 509 | ...                   return self.compile_operator(name, &li[1..], &value);
[INFO] [stdout]     |                                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:510:70
[INFO] [stdout]     |
[INFO] [stdout] 510 | ...                   } else if self.specialize_call(name, &li[1..])? {
[INFO] [stdout]     |                                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |                 for v in &li[1..] {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/compile.rs:646:55
[INFO] [stdout]     |
[INFO] [stdout] 646 |                 self.eval_constant_function(name, &li[1..])
[INFO] [stdout]     |                                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:1380:34
[INFO] [stdout]      |
[INFO] [stdout] 1380 |         let _ = self.stack.drain(n..);
[INFO] [stdout]      |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:1883:43
[INFO] [stdout]      |
[INFO] [stdout] 1883 |                 compiler, Some(name), &li[1..], body, doc)?;
[INFO] [stdout]      |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:1910:24
[INFO] [stdout]      |
[INFO] [stdout] 1910 |             (name, &li[1..])
[INFO] [stdout]      |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/compile.rs:2105:23
[INFO] [stdout]      |
[INFO] [stdout] 2105 |     for case in &args[1..] {
[INFO] [stdout]      |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:155:18
[INFO] [stdout]     |
[INFO] [stdout] 155 |         for _ in 0..n_names {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 |     for _ in 0..n_exports {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     for _ in 0..n_imports {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:178:18
[INFO] [stdout]     |
[INFO] [stdout] 178 |         for _ in 0..n_names {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |     for _ in 0..n_consts {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:200:14
[INFO] [stdout]     |
[INFO] [stdout] 200 |     for _ in 0..n_macros {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:209:14
[INFO] [stdout]     |
[INFO] [stdout] 209 |     for _ in 0..n_values {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:226:14
[INFO] [stdout]     |
[INFO] [stdout] 226 |     for _ in 0..n_docs {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:441:26
[INFO] [stdout]     |
[INFO] [stdout] 441 |                 for _ in 0..n {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:481:26
[INFO] [stdout]     |
[INFO] [stdout] 481 |                 for _ in 0..n {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:523:18
[INFO] [stdout]     |
[INFO] [stdout] 523 |         for _ in 0..n_consts {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:552:26
[INFO] [stdout]     |
[INFO] [stdout] 552 |                 for _ in 0..n {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/encode.rs:942:21
[INFO] [stdout]     |
[INFO] [stdout] 942 |         Some(&bytes[pos..pos + n])
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/exec.rs:992:28
[INFO] [stdout]     |
[INFO] [stdout] 992 |         let n = self.stack[start..end].iter()
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/exec.rs:996:34
[INFO] [stdout]     |
[INFO] [stdout] 996 |         let _ = self.stack.drain(start..end);
[INFO] [stdout]     |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1007:28
[INFO] [stdout]      |
[INFO] [stdout] 1007 |         let n = self.stack[pos..].iter()
[INFO] [stdout]      |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1011:34
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         let _ = self.stack.drain(pos..);
[INFO] [stdout]      |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1198:18
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         for _ in 0..n {
[INFO] [stdout]      |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1220:32
[INFO] [stdout]      |
[INFO] [stdout] 1220 |             let n = self.stack[start..].iter()
[INFO] [stdout]      |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/exec.rs:1224:33
[INFO] [stdout]      |
[INFO] [stdout] 1224 |             Ok(self.stack.drain(start..))
[INFO] [stdout]      |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:515:22
[INFO] [stdout]     |
[INFO] [stdout] 515 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:559:26
[INFO] [stdout]     |
[INFO] [stdout] 559 |         for arg in &args[1..] {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:617:22
[INFO] [stdout]     |
[INFO] [stdout] 617 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:783:26
[INFO] [stdout]     |
[INFO] [stdout] 783 |         for arg in &args[1..] {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:802:26
[INFO] [stdout]     |
[INFO] [stdout] 802 |         for arg in &args[1..] {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:956:22
[INFO] [stdout]     |
[INFO] [stdout] 956 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/function.rs:979:22
[INFO] [stdout]     |
[INFO] [stdout] 979 |     for arg in &args[1..] {
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1002:22
[INFO] [stdout]      |
[INFO] [stdout] 1002 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1033:22
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1053:26
[INFO] [stdout]      |
[INFO] [stdout] 1053 |         for rhs in &args[i + 1..] {
[INFO] [stdout]      |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1094:22
[INFO] [stdout]      |
[INFO] [stdout] 1094 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1115:22
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1137:22
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1159:22
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     for arg in &args[1..] {
[INFO] [stdout]      |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1312:25
[INFO] [stdout]      |
[INFO] [stdout] 1312 |     let mut iter = args[1..].iter_mut();
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1341:25
[INFO] [stdout]      |
[INFO] [stdout] 1341 |     let mut iter = args[1..].iter_mut();
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1365:67
[INFO] [stdout]      |
[INFO] [stdout] 1365 |     let s = format_string(&ctx.scope().borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1374:61
[INFO] [stdout]      |
[INFO] [stdout] 1374 |     let s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1387:65
[INFO] [stdout]      |
[INFO] [stdout] 1387 |     let mut s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1403:61
[INFO] [stdout]      |
[INFO] [stdout] 1403 |     let s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1416:65
[INFO] [stdout]      |
[INFO] [stdout] 1416 |     let mut s = format_string(&scope.borrow_names(), fmt, &args[1..])?;
[INFO] [stdout]      |                                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1439:19
[INFO] [stdout]      |
[INFO] [stdout] 1439 |     v.extend(args[1..].iter_mut().map(|v| v.take()));
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1607:26
[INFO] [stdout]      |
[INFO] [stdout] 1607 |         for arg in &args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1629:26
[INFO] [stdout]      |
[INFO] [stdout] 1629 |         for arg in &args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1670:33
[INFO] [stdout]      |
[INFO] [stdout] 1670 |                     Ok(li.slice(begin..).into())
[INFO] [stdout]      |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1680:32
[INFO] [stdout]      |
[INFO] [stdout] 1680 |                     Ok(s.slice(begin..).into())
[INFO] [stdout]      |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1688:32
[INFO] [stdout]      |
[INFO] [stdout] 1688 |                     Ok(b.slice(begin..).into())
[INFO] [stdout]      |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1717:33
[INFO] [stdout]      |
[INFO] [stdout] 1717 |                     Ok(li.slice(begin..end).into())
[INFO] [stdout]      |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1731:32
[INFO] [stdout]      |
[INFO] [stdout] 1731 |                     Ok(s.slice(begin..end).into())
[INFO] [stdout]      |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1741:32
[INFO] [stdout]      |
[INFO] [stdout] 1741 |                     Ok(b.slice(begin..end).into())
[INFO] [stdout]      |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1850:25
[INFO] [stdout]      |
[INFO] [stdout] 1850 |             Ok(li.slice(1..).into())
[INFO] [stdout]      |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1856:40
[INFO] [stdout]      |
[INFO] [stdout] 1856 |                 Some(ch) => Ok(s.slice(ch.len_utf8()..).into()),
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:1864:28
[INFO] [stdout]      |
[INFO] [stdout] 1864 |                 Ok(b.slice(1..).into())
[INFO] [stdout]      |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:2135:26
[INFO] [stdout]      |
[INFO] [stdout] 2135 |     for arg in &mut args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/function.rs:2148:26
[INFO] [stdout]      |
[INFO] [stdout] 2148 |     for arg in &mut args[1..] {
[INFO] [stdout]      |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:107:31
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let line_end = match text[line_start..].find('\n') {
[INFO] [stdout]     |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:112:26
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let pre_chars = text[line_start..span.lo as usize].chars().count();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:113:26
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let span_str = &text[span.lo as usize..span.hi as usize];
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |         source: &text[line_start..line_end],
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:200:41
[INFO] [stdout]     |
[INFO] [stdout] 200 |             ..highlight_span(&self.text[f.begin as usize..end as usize], adj_span)
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:265:63
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 '-' | '0' ..= '9' => parse_number(&self.input[ind..]),
[INFO] [stdout]     |                                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:266:52
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 '"' => Ok(parse_string(&self.input[ind..], self.code_offset + lo)?),
[INFO] [stdout]     |                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:270:78
[INFO] [stdout]     |
[INFO] [stdout] 270 | ...                   Some((_, 'r')) => Ok(parse_raw_bytes(&self.input[ind..],
[INFO] [stdout]     |                                                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:272:74
[INFO] [stdout]     |
[INFO] [stdout] 272 | ...                   Some((_, '"')) => Ok(parse_bytes(&self.input[ind..],
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:274:74
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   Some((_, '\'')) => Ok(parse_byte(&self.input[ind..],
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:281:77
[INFO] [stdout]     |
[INFO] [stdout] 281 | ...                   Some((_, 'r')) => Ok(parse_raw_path(&self.input[ind..],
[INFO] [stdout]     |                                                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:283:73
[INFO] [stdout]     |
[INFO] [stdout] 283 | ...                   Some((_, '"')) => Ok(parse_path(&self.input[ind..],
[INFO] [stdout]     |                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:288:66
[INFO] [stdout]     |
[INFO] [stdout] 288 |                     Some((_, '\'')) => Ok(parse_char(&self.input[ind..],
[INFO] [stdout]     |                                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:302:57
[INFO] [stdout]     |
[INFO] [stdout] 302 |                         Ok(parse_raw_string(&self.input[ind..],
[INFO] [stdout]     |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:304:49
[INFO] [stdout]     |
[INFO] [stdout] 304 |                     _ => parse_name(&self.input[ind..])
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:306:50
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 ':' => parse_keyword(&self.input[ind..]),
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:309:76
[INFO] [stdout]     |
[INFO] [stdout] 309 |                         Some((_, ';')) => Ok(parse_doc_comment(&self.input[ind..])),
[INFO] [stdout]     |                                                                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:327:66
[INFO] [stdout]     |
[INFO] [stdout] 327 |                 _ if is_identifier(ch) => parse_name(&self.input[ind..]),
[INFO] [stdout]     |                                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:338:38
[INFO] [stdout]     |
[INFO] [stdout] 338 |             self.input = &self.input[ind + size..];
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:366:38
[INFO] [stdout]     |
[INFO] [stdout] 366 |             self.input = &self.input[pos..];
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:492:29
[INFO] [stdout]     |
[INFO] [stdout] 492 |     parse_identifier(&input[1..]) // Skip leading ':'
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:516:24
[INFO] [stdout]     |
[INFO] [stdout] 516 |         (16, 2, &input[2..])
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:518:23
[INFO] [stdout]     |
[INFO] [stdout] 518 |         (8, 2, &input[2..])
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:520:23
[INFO] [stdout]     |
[INFO] [stdout] 520 |         (2, 2, &input[2..])
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:522:21
[INFO] [stdout]     |
[INFO] [stdout] 522 |         match input[1..].chars().next() {
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:523:59
[INFO] [stdout]     |
[INFO] [stdout] 523 |             Some(ch) if ch.is_digit(10) => (10, 1, &input[1..]),
[INFO] [stdout]     |                                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:597:54
[INFO] [stdout]     |
[INFO] [stdout] 597 |     let (_, size) = string::parse_byte_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:602:58
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let (_, size) = string::parse_raw_byte_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:607:49
[INFO] [stdout]     |
[INFO] [stdout] 607 |     let (_, size) = string::parse_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/lexer.rs:612:53
[INFO] [stdout]     |
[INFO] [stdout] 612 |     let (_, size) = string::parse_raw_string(&input[2..], pos + 2)?;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:483:42
[INFO] [stdout]     |
[INFO] [stdout] 483 |         string::parse_raw_byte_string(&s[2..], 0)?
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:485:38
[INFO] [stdout]     |
[INFO] [stdout] 485 |         string::parse_byte_string(&s[2..], 0)?
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:492:37
[INFO] [stdout]     |
[INFO] [stdout] 492 |         string::parse_raw_string(&s[2..], 0)?
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:494:33
[INFO] [stdout]     |
[INFO] [stdout] 494 |         string::parse_string(&s[2..], 0)?
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:517:17
[INFO] [stdout]     |
[INFO] [stdout] 517 |         _ => &s[2..]
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/parser.rs:546:16
[INFO] [stdout]     |
[INFO] [stdout] 546 |         s = &s[1..].trim_start_matches('0');
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ketos/pretty.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |             if is_short_args(&li[1..]) {
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ketos/pretty.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for _ in 0..n {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/ketos/rc_vec.rs:98:33
[INFO] [stdout]    |
[INFO] [stdout] 98 |                 let _ = s.drain(self.end..);
[INFO] [stdout]    |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 |             Err(data) => data[self.start..self.end].to_owned()
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let _ = s.drain(self.end..);
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:134:20
[INFO] [stdout]     |
[INFO] [stdout] 134 |         &self.data[self.start..self.end]
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:287:33
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 let _ = v.drain(self.end..);
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:291:31
[INFO] [stdout]     |
[INFO] [stdout] 291 |             Err(data) => data[self.start..self.end].to_vec()
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:305:25
[INFO] [stdout]     |
[INFO] [stdout] 305 |         let _ = v.drain(self.end..);
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:324:20
[INFO] [stdout]     |
[INFO] [stdout] 324 |         &self.data[self.start..self.end]
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:431:29
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let mut b = a.slice(1..4);
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:451:26
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let _b = a.slice(2..4);
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/rc_vec.rs:457:29
[INFO] [stdout]     |
[INFO] [stdout] 457 |         let mut b = a.slice(1..3);
[INFO] [stdout]     |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 |         for _ in 0..n_hash {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:206:39
[INFO] [stdout]     |
[INFO] [stdout] 206 |             Some((ind, _)) => &self.s[ind..],
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:239:24
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 self.s[start..end].parse()
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:441:32
[INFO] [stdout]     |
[INFO] [stdout] 441 |         let fields = &self.fmt[field_start..field_end];
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:818:17
[INFO] [stdout]     |
[INFO] [stdout] 818 |         if !buf[start..].is_empty() {
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:853:30
[INFO] [stdout]     |
[INFO] [stdout] 853 |                     for _ in 0..n {
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/string_fmt.rs:966:37
[INFO] [stdout]     |
[INFO] [stdout] 966 |             let segment = &self.fmt[seg_start..end_dir.span.lo as usize];
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1190:39
[INFO] [stdout]      |
[INFO] [stdout] 1190 |         let sub_fmt = match &self.fmt[start..end_dir.span.lo as usize] {
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1213:63
[INFO] [stdout]      |
[INFO] [stdout] 1213 |                     let mut sub_fmter = self.sub(sub_fmt, &li[last_off..]);
[INFO] [stdout]      |                                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1320:50
[INFO] [stdout]      |
[INFO] [stdout] 1320 |                     for (i, item) in self.values[start_off..].iter().enumerate() {
[INFO] [stdout]      |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1581:7
[INFO] [stdout]      |
[INFO] [stdout] 1581 |     s[pos..].chars().count()
[INFO] [stdout]      |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1614:10
[INFO] [stdout]      |
[INFO] [stdout] 1614 |     if s[start..].is_ascii() {
[INFO] [stdout]      |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1615:11
[INFO] [stdout]      |
[INFO] [stdout] 1615 |         s[start..].make_ascii_lowercase();
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1617:23
[INFO] [stdout]      |
[INFO] [stdout] 1617 |         let lower = s[start..].to_lowercase();
[INFO] [stdout]      |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1624:10
[INFO] [stdout]      |
[INFO] [stdout] 1624 |     if s[start..].is_ascii() {
[INFO] [stdout]      |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1625:11
[INFO] [stdout]      |
[INFO] [stdout] 1625 |         s[start..].make_ascii_uppercase();
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1627:23
[INFO] [stdout]      |
[INFO] [stdout] 1627 |         let upper = s[start..].to_uppercase();
[INFO] [stdout]      |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1635:34
[INFO] [stdout]      |
[INFO] [stdout] 1635 |         let (off, len) = match s[start..].split_whitespace().next() {
[INFO] [stdout]      |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1650:29
[INFO] [stdout]      |
[INFO] [stdout] 1650 |     let (ind, ch) = match s[start..].char_indices()
[INFO] [stdout]      |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]     --> src/ketos/string_fmt.rs:1657:11
[INFO] [stdout]      |
[INFO] [stdout] 1657 |         s[ind..=ind].make_ascii_uppercase();
[INFO] [stdout]      |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:634:26
[INFO] [stdout]     |
[INFO] [stdout] 634 |                 for _ in 0..depth { write!(f, "`")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:638:26
[INFO] [stdout]     |
[INFO] [stdout] 638 |                 for _ in 0..depth { write!(f, ",")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:642:26
[INFO] [stdout]     |
[INFO] [stdout] 642 |                 for _ in 0..depth { write!(f, ",")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/ketos/value.rs:647:26
[INFO] [stdout]     |
[INFO] [stdout] 647 |                 for _ in 0..depth { write!(f, "'")?; }
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let b = SomeTrait::downcast::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let b = <dyn SomeTrait>::downcast::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let c = SomeTrait::downcast::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let c = <dyn SomeTrait>::downcast::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let b = SomeTrait::downcast_rc::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let b = <dyn SomeTrait>::downcast_rc::<Dumber>(a).unwrap_err();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/any.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let c = SomeTrait::downcast_rc::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let c = <dyn SomeTrait>::downcast_rc::<Dummy>(b).unwrap();
[INFO] [stdout]     |                 ++++          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/structs.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 ForeignValue::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 <dyn ForeignValue>::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ++++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ketos/structs.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 ForeignValue::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 <dyn ForeignValue>::downcast_rc::<T>(fv)
[INFO] [stdout]     |                 ++++             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/ketos/compile.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let _ = replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `Range` type
[INFO] [stdout]   --> src/ketos/rc_vec.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<T> RangeArgument<T> for ops::Range<T> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D trait-impl-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: public trait impl involving `RangeFrom` type
[INFO] [stdout]   --> src/ketos/rc_vec.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl<T> RangeArgument<T> for ops::RangeFrom<T> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 137 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/ketos/compile.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let _ = replace(&mut self.blocks, new_blocks);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ketos` (lib) due to 3 previous errors; 137 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: 144 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b36726d7209ca42687cd8ef836fc928916494f95767646fb0cedc6bb2adf34ac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b36726d7209ca42687cd8ef836fc928916494f95767646fb0cedc6bb2adf34ac", kill_on_drop: false }`
[INFO] [stdout] b36726d7209ca42687cd8ef836fc928916494f95767646fb0cedc6bb2adf34ac
